﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Resources;
using System.Threading;
using System.Globalization;
using System.Data;
using EHTWebsite.Code;
using EHTWebsiteProject.Code.BLL;
using System.Web.Security;


namespace EHTWebsiteProject.Administrator
{
    public partial class EHTAdmin : System.Web.UI.MasterPage
    {
        public Boolean IsVN = true;
        private String languageCode = "vi-VN";
        private ResourceManager rm = new ResourceManager("Resources.SiteMap", System.Reflection.Assembly.Load("App_GlobalResources"));
        private Int32 IsAdmin = 1;

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                // kiểm tra xem tài khoản đã đăng nhập chưa
                if (Session["UserName"] == null)
                    Response.Redirect("../Account/EHTLogin.aspx");
                else
                {
                    try
                    {
                        languageCode = Session[HangSo.LANGUAGE_CODE].ToString();
                        if (languageCode == "en-us")
                        {
                            IsVN = false;
                        }

                    }
                    catch (Exception ex)
                    {
                    }
                    Thread.CurrentThread.CurrentCulture = new CultureInfo(languageCode);
                    LoadLanguage(Thread.CurrentThread.CurrentCulture);

                    // Lấy role của tài khoản vưad đăng nhập

                    MembershipUser theUser = Membership.GetUser(Session["UserName"].ToString());
                    String roleName = Roles.GetRolesForUser(theUser.UserName)[0];
                    if (roleName == HangSo.ROLE_ADMIN)
                        IsAdmin = 1;
                    else
                        IsAdmin = 0;
                    //lấy menu của user dựa vào role của user
                    GetMenus(RadMenu, theUser.ProviderUserKey.ToString(), IsAdmin);
                }

            }
        }
        /// <summary>
        /// Ham load ngon ngu
        /// </summary>
        /// <param name="ci"></param>
        public void LoadLanguage(CultureInfo ci)
        {
            lbFooter.Text = rm.GetString("lbFooter", ci);
            lbLogout.Text = rm.GetString("lbLogout", ci);
            lbXemTruoc.Text = rm.GetString("lbXemTruoc", ci);

        }

        /// <summary>
        /// ham logout
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void lbtLogout_Click(object sender, EventArgs e)
        {
            Session.Clear();
            Response.Redirect("../Account/EHTLogin.aspx");
        }
        /// <summary>
        /// Ham tạo menu ứng với tài khoản đăng nhập
        /// </summary>
        /// <param name="poMenu"></param>
        /// <param name="UserID"></param>
        /// <param name="IsAdmin"></param>
        public void GetMenus(Telerik.Web.UI.RadMenu poMenu, String UserID, Int32 IsAdmin)
        {
            //Lấy menu hệ thống ứng với tài khoản đăng nhập
            DataSet ds = MenusProvider.GetMenus(UserID, IsAdmin,1);
            DataTable dtData = ds.Tables[0];
            //duyệt mảng menu
            foreach (DataRow dr in dtData.Select("MenuLevel = 1"))
            {
                if (HelpMethod.ToStr(dr["MenuLevel"]).Equals("1"))
                {
                    Telerik.Web.UI.RadMenuItem oItem1;
                    if(IsVN ==true)
                         oItem1 = new Telerik.Web.UI.RadMenuItem(dr["MenuNameVN"].ToString());
                    else
                         oItem1 = new Telerik.Web.UI.RadMenuItem(dr["MenuNameOther"].ToString());
                    oItem1.Font.Name = "Tahoma";
                    oItem1.ForeColor = System.Drawing.Color.FromName("#666"); 
                    oItem1.Font.Bold = true;
                    oItem1.NavigateUrl = HelpMethod.ToStr(dr["ControlUrl"].ToString());
                    
                    //Duyệt mảng menu con
                    foreach (DataRow dr1 in dtData.Select("ParentID = '" + dr["MenuID"].ToString() + "'", "MenuOrder ASC"))
                    {
                        Telerik.Web.UI.RadMenuItem oItem2;
                        if(IsVN==true)
                            oItem2 = new Telerik.Web.UI.RadMenuItem(dr1["MenuNameVN"].ToString());
                        else
                            oItem2 = new Telerik.Web.UI.RadMenuItem(dr1["MenuNameOther"].ToString());
                        oItem2.Font.Name = "Tahoma";                                               
                        oItem2.Font.Bold = false;
                        oItem2.ForeColor = System.Drawing.Color.FromName("#696969");
                        oItem2.NavigateUrl = HelpMethod.ToStr(dr1["ControlUrl"].ToString());
                        oItem2.Selected = false;
                        oItem1.Items.Add(oItem2);
                    }
                    poMenu.Items.Add(oItem1);

                }

            }
        }
    }
}
